<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    // new Set()
    // add()
    // delete()
    // clear()
    // has()
    // size

    // keys()
    // values()
    // entries()
    // forEach()

    // 基本使用-无参数
    const set = new Set();
    set.add(1);
    set.add(3);
    set.add(5);
    set.add('hello');
    // 基本使用-有参数 Array
    const set1 = new Set([1,3,5,6]);
    // 基本使用-有参数 String
    // 结果为 Set(5) {'h', 'e', 'l', 'o', '2'}
    const set2 = new Set('hello2');
    const set3 = new Set('Hello3');
    console.log(set2, set3);

    function myForEach(iterator) {
        for (let key of iterator) {
            console.log('key', key);
        }
        console.log('==================');
    }
    // myForEach(set.entries());
    // myForEach(set.keys());
    // myForEach(set.values());

    // 应用
    // 使用Array.from 转换 Set 为 Array
    console.log(Array.from(set));
    // 使用... 转换 Set 为 Array
    console.log([...set]);
    // 将Array 转换成 Set
    const set100 = new Set([1, 3, 5, 7]);
    console.log(set100)
    // 使用Set去重
    const arr = [1,2,3,4,5,6,4,4,4,4,4];
    console.log([...new Set(arr)]);
</script>
</body>
</html>